package com.xli.ui.module.framemoduleuser.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xli.ui.module.framemoduleuser.entity.FrameModuleUser;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public interface IFrameModuleUserService extends IService<FrameModuleUser> {

    boolean insert(@NotNull FrameModuleUser frameModuleUser);

    boolean insert(@NotNull Long moduleId, @NotNull List<String> userIds);

    boolean delete(@NotNull Long id);

    boolean delete(@NotNull Long moduleId, @NotNull List<String> userIds);

    boolean deleteByUserId(@NotNull Long id);

    FrameModuleUser find(@NotNull Long id);

    FrameModuleUser find(@NotNull Long moduleId, @NotNull Long userId);

    long findCount(@NotNull QueryWrapper<FrameModuleUser> qw);

    List<FrameModuleUser> findList(@NotNull QueryWrapper<FrameModuleUser> qw);

    Page<FrameModuleUser> findList(@NotNull QueryWrapper<FrameModuleUser> qw, @NotNull long current, @NotNull long size);

    List<FrameModuleUser> findModuleUserListByUserId(@NotNull Long userId);

    List<FrameModuleUser> findModuleUserListByModuleId(@NotNull Long moduleId);
}
